package com.ea.admin.service;

import com.ea.admin.pojo.po.AdminAccount;
import com.ea.admin.pojo.vo.account.GetAdminListVo;
import com.ea.admin.pojo.vo.account.GetAdminRoleVo;
import com.ea.admin.pojo.vo.account.GetOperateLogVo;

import java.util.Date;
import java.util.List;

public interface AccountService {

    GetAdminRoleVo getAdminRole();

    AdminAccount addAdmin(String username, String password, String rePassword, String name, String phoneNumber, Long adminRoleId);

    void createRootAdmin(String username, String password, String name, String phoneNumber);

    GetAdminListVo getAdminList(Long accountId, Integer page, Integer pageSize, String username, String name, String phoneNumber, List<Long> companyIdList, List<Long> deptIdList, List<Integer> getAdminRoleId);

    void editAdmin(Long accountId, String username, String name, String phoneNumber, Long adminRoleId);

    void blockAdmin(Long nowAccountId, Long accountId, Integer isBlock);

    void deleteAdmin(Long nowAccountId, Long accountId);

    void editPassword(Long nowAccountId, Long accountId, String password, String rePassword);

    void editFunctionPermission(Long accountId, List<Integer> functionPermissionList);

    void editCompanyPermission(Long accountId, List<Long> companyPermissionList);

    void editDepartmentPermission(Long accountId, List<Long> deptPermissionList);

    GetOperateLogVo getOperateLog(Integer page, Integer pageSize, String username, String name, Date startTime, Date endTime);

    List<Long> getSuperAdminIdList();
}
